+Fri Jul 2 21:40:21 2004 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtknotebook.c (gtk_notebook_realize): Add scroll events
+ to the event mask, set a scroll_event handler.
+ * gtk/gtknotebook.c (gtk_notebook_scroll): Handle scroll events
+ by switching tabs. (#145244, Gabriel de Perthuis)
+
2004-07-02 Anders Carlsson <andersca@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_set_model):
+Fri Jul 2 21:40:21 2004 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtknotebook.c (gtk_notebook_realize): Add scroll events
+ to the event mask, set a scroll_event handler.
+ * gtk/gtknotebook.c (gtk_notebook_scroll): Handle scroll events
+ by switching tabs. (#145244, Gabriel de Perthuis)
+
2004-07-02 Anders Carlsson <andersca@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_set_model):
+Fri Jul 2 21:40:21 2004 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtknotebook.c (gtk_notebook_realize): Add scroll events
+ to the event mask, set a scroll_event handler.
+ * gtk/gtknotebook.c (gtk_notebook_scroll): Handle scroll events
+ by switching tabs. (#145244, Gabriel de Perthuis)
+
2004-07-02 Anders Carlsson <andersca@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_set_model):
+Fri Jul 2 21:40:21 2004 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtknotebook.c (gtk_notebook_realize): Add scroll events
+ to the event mask, set a scroll_event handler.
+ * gtk/gtknotebook.c (gtk_notebook_scroll): Handle scroll events
+ by switching tabs. (#145244, Gabriel de Perthuis)
+
2004-07-02 Anders Carlsson <andersca@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_set_model):
GtkAllocation *allocation);
static gint gtk_notebook_expose (GtkWidget *widget,
GdkEventExpose *event);
+static gboolean gtk_notebook_scroll (GtkWidget *widget,
+ GdkEventScroll *event);
static gint gtk_notebook_button_press (GtkWidget *widget,
GdkEventButton *event);
static gint gtk_notebook_button_release (GtkWidget *widget,
widget_class->size_request = gtk_notebook_size_request;
widget_class->size_allocate = gtk_notebook_size_allocate;
widget_class->expose_event = gtk_notebook_expose;
+ widget_class->scroll_event = gtk_notebook_scroll;
widget_class->button_press_event = gtk_notebook_button_press;
widget_class->button_release_event = gtk_notebook_button_release;
widget_class->enter_notify_event = gtk_notebook_enter_notify;
* gtk_notebook_size_request
* gtk_notebook_size_allocate
* gtk_notebook_expose
+ * gtk_notebook_scroll
* gtk_notebook_button_press
* gtk_notebook_button_release
* gtk_notebook_enter_notify
attributes.wclass = GDK_INPUT_ONLY;
attributes.event_mask = gtk_widget_get_events (widget);
attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
- GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK);
-
+ GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK |
+ GDK_SCROLL_MASK);
attributes_mask = GDK_WA_X | GDK_WA_Y;
notebook->event_window = gdk_window_new (gtk_widget_get_parent_window (widget),
return FALSE;
}
+static gboolean
+gtk_notebook_scroll (GtkWidget *widget,
+ GdkEventScroll *event)
+{
+ GtkNotebook *notebook = GTK_NOTEBOOK (widget);
+
+ switch (event->direction)
+ {
+ case GDK_SCROLL_RIGHT:
+ case GDK_SCROLL_DOWN:
+ gtk_notebook_next_page (notebook);
+ break;
+ case GDK_SCROLL_LEFT:
+ case GDK_SCROLL_UP:
+ gtk_notebook_prev_page (notebook);
+ break;
+ }
+
+ return TRUE;
+}
+
static gboolean
gtk_notebook_button_press (GtkWidget *widget,
GdkEventButton *event)